package br.com.scv.daoImp;

import java.util.List;


import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import br.com.scv.dao.UsuarioDao;
import br.com.scv.exception.ScvException;
import br.com.scv.model.Usuario;
import br.com.scv.util.HibernateUtil;


public class UsuarioDaoImp implements UsuarioDao {
	
	
	public void salvarUsuario(Usuario usuario)throws ScvException {
		
		Session sessao = HibernateUtil.getSessionFactory().openSession();  
        Transaction t = sessao.beginTransaction();  
        sessao.save(usuario);  
        t.commit();  
        sessao.close(); 
		

	}

	public List<Usuario> listarUsuario() throws ScvException {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		Transaction t = sessao.beginTransaction();
		List<Usuario> usuarios = sessao.createCriteria(Usuario.class).list();
		//List<Usuario> usuarios = sessao.createCriteria(Usuario.class).add(Restrictions.eq("congregacao", 1)).list();
		
		return usuarios;
	}

	public void editarUsuario(Usuario usuario)throws ScvException {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		Transaction t = sessao.beginTransaction();
		sessao.update(usuario);
		t.commit();
		sessao.close();
		
	}

	public void excluirUsuario(Usuario usuario)throws ScvException {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		Transaction t = sessao.beginTransaction();
		sessao.delete(usuario);
		t.commit();
		sessao.close();
		
	}

	public List<Usuario> listarUsuarioUnico(String usuario) throws ScvException {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		Transaction t = sessao.beginTransaction();
		
		List<Usuario> usuarios = sessao.createCriteria(Usuario.class).add(Restrictions.eq("usuario", usuario)).list();
		return usuarios;
	}


}